1.5 万 Star!大大提升终端体验的好工具:Rich
The following article is from 开源前哨 Author 前哨君
(给程序员的那些事加星标)
转自:开源前哨
【导语】:Rich 是一个可以在终端中提供富文本和精美格式的 Python 库。支持中文,终端爱好者可以试一下。
简介
今天给大家介绍的 Rich ,已经连续两天登上 GitHub 日榜,在 GitHub 快拿下 1.5 万 Star。它的开发者是国外开发小哥 Will McGugan。
Rich 的 API 相当丰富,可以很轻松地给终端输出添加各种颜色和不同风格。
它还可以绘制漂亮的表格、进度条、markdown、代码高亮等。
项目主页
https://github.com/willmcgugan/rich
功能一览
(点击看大图)
兼容性
Rich 支持三大平台 Linux、OSX 和 Windows。真彩色/表情符号可与新的 Windows 终端一起使用,Windows 的经典终端仅限 8 种颜色。
Rich 要求 Python 版本最低 v 3.6.1。可以与Jupyter 笔记本一起使用,而无需其他配置。
安装说明
使用pip
或其他 PyPi 软件包管理器进行安装。
pip install rich
Rich 的打印功能
只需导入 rich 打印方法,就可以想毫不费力地把 Rich 的输出功能添加到应用程序中。该方法和其他 Python 的自带功能的参数类似。
from rich import print
print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
使用控制台
想要对 Rich 终端内容进行更多控制,直接导入并构造一个控制台对象。
from rich.console import Console
console = Console()
Console 对象含有一个print
方法,其界面与 python 内置的print
功能界面相似。
您可以试试:
console.print("Hello", "World!")
这时终端上会显示“ Hello World!”。
请注意,与内置的“打印”功能不同,Rich 会将文字自动换行以适合终端宽度。
有几种方法可以为输出添加颜色和样式。添加style
关键字参数来为整个输出设置样式。例子如下:
console.print("Hello", "World!", style="bold red")
输出如下图:
表情符号
将名称放在两个冒号之间,即可在控制台输出中插入表情符号。
>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
😃 🧛 💩 👍 🦝
注:Rich 的开发者提醒这个功能慎用。
表格
Rich 可以使用 Unicode 框字符来呈现多变的表格。Rich 包含多种边框、样式、单元格对齐等格式设置的选项。
请看下面示例:
from rich.console import Console
from rich.table import Column, Table
console = Console()
table = Table(show_header=True, header_style="bold magenta")
table.add_column("Date", style="dim", width=12)
table.add_column("Title")
table.add_column("Production Budget", justify="right")
table.add_column("Box Office", justify="right")
table.add_row(
"Dev 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
)
table.add_row(
"May 25, 2018",
"[red]Solo[/red]: A Star Wars Story",
"$275,000,000",
"$393,151,347",
)
table.add_row(
"Dec 15, 2017",
"Star Wars Ep. VIII: The Last Jedi",
"$262,000,000",
"[bold]$1,332,539,889[/bold]",
)
console.print(table)
示例输出如下:
进度条
Rich 可以渲染多个不闪烁的进度条形图,用来跟踪长时间运行的任务。
使用用法:用track
函数调用任何程序并迭代结果。
from rich.progress import track
for step in track(range(100)):
do_step(step)
还支持添加多个进度条。
Markdown
Rich 可以呈现 markdown,并可相当不错的将其格式转移到终端。
from rich.console import Console
from rich.markdown import Markdown
console = Console()
with open("README.md") as readme:
markdown = Markdown(readme.read())
console.print(markdown)
样例输出如下图:
结语
Rich 简单介绍就到这里了,喜欢的童鞋还可以看一下视频介绍,请见:https://calmcode.io/rich/introduction.html
更详细介绍,请见项目主页:https://github.com/willmcgugan/rich
- EOF -
关注「程序员的那些事」加星标,不错过圈内事
点赞和在看就是最大的支持❤️